const App = {
    data() {
        return {
            photo,
            ACCESSTOKEN: '',
            loading: false,
            formData: {},
            tableData: [],
            miniprogram: false,//是否在小程序环境
            fileType: ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf"],
            imageType: ["png", "jpg", "jpeg", "gif", "tif"],
            videoType: ["mp4"],
        }
    },
    beforeCreate() {
        const that = this;
        function setRem() {
            const designWidth = 750; // 设计稿宽度（rpx）
            const maxWidth = 540; // 可选：限制最大宽度（如手机端常见值）
            const screenWidth = Math.min(window.innerWidth, maxWidth);
            const scale = screenWidth / designWidth;
            document.documentElement.style.fontSize = scale + 'px';
        }
        setRem();//1rem = 0.5px 对标小程序在 375px 宽的屏幕上，1rpx = 0.5px（因为 750rpx / 375px = 2）
        window.addEventListener('resize', setRem);
        function ready() { //判断是否在web-view页
            that.miniprogram = window.__wxjs_environment === 'miniprogram'
        }
        if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
            document.addEventListener('WeixinJSBridgeReady', ready, false)
        } else {
            ready()
        }
        // wx.config({
        //     debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        //     ...{"signature":"fa2ef64507df94392bdbb847a03aa6689de77ff5","appId":"wxa528b213925d2feb","nonceStr":"ee064ef8-9127-4e","timestamp":1756951263},
        //     jsApiList: ['wx.previewImage'] // 必填，需要使用的JS接口列表
        // });
        
    },
    mounted() {
        // wx.ready(function(){
        //     // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
        // });
        $.ajax({
            headers: requestHeaders(),
            url: `${mh}/requestForward/requestForward?Router=&RequestURL=${encodeURIComponent(`http://10.1.0.33:8086/api/wechat/jssdk/config?url=${window.location.href}&Router=`)}`,
            method: "get",
            success: (res) => {
                const {code , data} = JSON.parse(res); 
                if (code == 200) {
                    console.log('返回值',{
                        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        ...data,
                        jsApiList: ['previewImage'] // 必填，需要使用的JS接口列表
                    });
                    wx.config({
                        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        ...data,
                        jsApiList: ['previewImage'] // 必填，需要使用的JS接口列表
                    });
                }
            },
        });
        let URL = window.location.href;
        this.ACCESSTOKEN = getQueryObject(URL, 'ACCESSTOKEN');
        let id = getQueryObject(URL, 'nodeKey');
        this.getList(id);
    },
    computed: {
        submitText() {
            const { Registration_Start_Datetime, Registration_End_Datetime, Activity_Datetime, Activity_End_Datetime } = this.formData;
            let obj = { is: false, label: '' }, now = +new Date();
            if (now > +new Date(Registration_Start_Datetime) && now < +new Date(Registration_End_Datetime)) {
                obj.is = true;
                obj.label = '报名'
            }
            return str;
        }
    },
    methods: {
        getList(id) {
            $.ajax({
                headers: requestHeaders(),
                url: `${mh}/generalBusiness/generalQueryBySQLSerialNumber`,
                method: "post",
                data: {
                    SQLSerialNumber: 'f_village_project1',
                    Condition: window.btoa(unescape(encodeURIComponent(id)))
                },
                success: (res) => {
                    if (res.length > 0) {
                        this.formData = res[0];
                    }
                },
                complete: (XMLHttpRequest) => {
                    if (XMLHttpRequest.status == 302) {
                        wx.miniProgram.navigateTo({
                            url: miniProgram,
                        })
                    }
                },
            });
            $.ajax({
                headers: requestHeaders(),
                url: `${mh}/generalBusiness/generalQueryByTableName`,
                method: "post",
                data: {
                    Data: 'village_project_attachment',
                    Condition: `Project_SerialNumber='${id}'`,
                },
                success: (res) => {
                    this.tableData = res;
                },
                complete: (XMLHttpRequest) => {
                    if (XMLHttpRequest.status == 302) {
                        wx.miniProgram.navigateTo({
                            url: miniProgram,
                        })
                    }
                },
            })
        },
        async handleSubmit() {
            const allValid = await this.validateAllForms();
            if (allValid && !this.loading) {
                this.loading = true;
                let lJSONObject_DataSet = {
                    Add: {
                        '': [this.form]
                    }
                }
                this.submitSave(lJSONObject_DataSet, (res) => {
                    if (res.Status == 'success') {
                        window.history.go(-1);
                    }
                    this.loading = false;
                })
            }
        },
        previewFile(item) {
            this.$message({
                type: 'success',
                message: '暂未开放'
            });
            return 
            const url = item.Attachment_URL
            const fileType = url.substring(url.lastIndexOf(".") + 1);
            if (this.fileType.includes(fileType)) {
                console.log("文档类型");
                // wx.downloadFile({
                //     // 示例 url，并非真实存在
                //     url: this.data.imgApi + url,
                //     success: function (res) {
                //         const filePath = res.tempFilePath;
                //         wx.openDocument({
                //             showMenu: true,
                //             filePath: filePath,
                //             success: function (res) {
                //                 console.log("打开文档成功");
                //             },
                //             fail(err) {
                //                 console.log("打开文档失败", err);
                //             },
                //         });
                //     },
                //     fail(err) {
                //         console.log("下载文档失败", err);
                //     },
                // });
            } else if (this.imageType.includes(fileType)) {
                console.log("图片类型");
                // wx.miniProgram.postMessage({
                //     data: {
                //         key1: 'value1',
                //         key2: 'value2'
                //     }
                // });
                wx.previewImage({
                    current: photo + url, // 当前显示图片的http链接
                    urls: [photo + url]
                })
                // wx.previewImage({
                //     sources: [
                //         {
                //             url: photo + url,
                //         },
                //     ],
                // });
            } else if (this.videoType.includes(fileType)) {
                // wx.previewMedia({
                //     sources: [
                //         {
                //             url: this.data.imgApi + url,
                //             type: "video",
                //         },
                //     ],
                // });
            } else {
                toast("暂不支持该文件预览");
            }
        },
        submitSave(Data, response) {
            const websocket = new WebSocketClient();
            websocket.init({
                url: ws + '/generalSave/' + getCookie('token'),
                onopen: () => {
                    let lJSONObject_DataSet = {
                        Data, AccessToken: getCookie('token')
                    }
                    websocket.send(JSON.stringify(lJSONObject_DataSet));
                },
                onmessage: (data) => {
                    try {
                        const res = JSON.parse(data);
                        websocket.close();
                        if (res.REDIRECT && res.REDIRECT == 'REDIRECT') {//重定向
                            wx.miniProgram.navigateTo({
                                url: miniProgram,
                            })
                        } else {
                            response ? response(res) : null;
                        }
                    } catch (error) { }
                },
            })
        }
    },
};

const { createApp } = Vue;
const app = createApp(App);
//这种方式是引入全部图标，无需单个引入
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component);
}
const ElMessage = ElementPlus.ElMessage;
app.use(ElementPlus, { locale: zhCn });
app.mount("#app");